//
//  main.m
//  cccclearn
//
//  Created by Yanyan Jiang on 2019/5/7.
//  Copyright © 2019 Yanyan Jiang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LeapYear.h"
#include <stdio.h>


#define PRICE 50

#define P printf
#define D "%d\n"
#define F "%f\n"

#define NUM OK


struct stu{
    char name[10];
    int num;
    int age;
    char addr[15];
};


int main(int argc, const char * argv[]) {
    @autoreleasepool {
    
//        double x,s;
//        printf("input number:\n");
//        scanf("%lf",&x);
//        s=sin(x);
//        printf("sine of %lf is %lf\n",x,s);
//        // insert code here...
//        NSLog(@"Hello, World!");
        
        //判断是普通闰年还是世纪闰年
//        for (int i=2000; i<2600; i++) {
//            if (i%4 == 0 && i%100 != 0) {
//                printf("%d是普通闰年\n",i);
//            }else if (i%400 == 0){
//                printf("%d是世纪闰年\n",i);
//            }else{
//                printf("%d不是闰年\n",i);
//            }
//        }
        
//        float sum = 1.0;
//        int sigh = 1;
//        for (int deno = 2; deno<=100; deno++) {
//            sigh = sigh*(-1);
//            float minus = sigh*(1.0/deno);//一个整数除以一个整数结果会得零
//            sum = sum+minus;
//        }
//        printf("sum的值为:%.02f\n",sum);
        
//        int num,total;
//        num = 10;
//        total = num*PRICE;
//        printf("total = %d\n",total);
//
        
//        printf("%f\n",365.);
//        printf("%f\n",365);
//        printf("%f\n",365.f);
        
//        float a,b;
//        a = 123456.789E5;
//        b = a+20;
//        printf("%f\n",a);
//        printf("%f\n",b);
        
//        float a;
//        double b;
//        a = 33333.33333;
//        b = 33333.333333333333333;
//        printf("%f\n%f\n",a,b);
        
//        int i=5,j=5,p,q;
//        p = (i++)+(i++)+(i++);
//        q = (++j)+(++j)+(++j);
//        printf("p=%d\nq=%d\ni=%d\nj=%d\n",p,q,i,j);
        
//        int a,b=322;
//        float x,y=8.88;
//        char c1='k',c2;
//        a=y;
//        x=b;
//        a=c1;
//        c2=b;
//        printf("%d,%f,%d,%c\n",a,x,a,c2);
        
//        int a=2,b=4,c=6,x,y;
//        y=(x=a+b),(b+c);
//        printf("y=%d,x=%d\n",y,x);
//        void nzp(int v);
//        int a[5],i;
//        printf("input 5 numbers\n");
//        for (i=0; i<5; i++) {
//            scanf("%d",&a[i]);
//            nzp(a[i]);
//        }
        
//        int b[5],i;
//        printf("\ninput 5 numbers:\n");
//        for (i=0; i<5; i++) {
//            scanf("%d",&b[i]);
//        }
//        printf("\ninitial values of array b are:\n");
//        for (int j=0; j<5; j++) {
//            printf("%d",b[j]);
//        }
//        void initalaa(int a[5]);
//        initalaa(b);
//        printf("\nlast values of array b are:\n");
//        for (int m=0; m<5; m++) {
//            printf("%d",b[m]);
//        }
        
//        int fPlus(int);
//        int a=2,i;
//        for (i=0; i<3; i++) {
//            printf("%d\n",fPlus(a));
//        }
        
        
//        int fac(int n);
//        int i;
//        for(i=0;i<=5;i++)
//            printf("%d!=%d\n",i,fac(i));
        
//        int a=5, c=8, e=11;
//        float b=3.8, d=9.7, f=21.08;
//        P(D F,a,b);
//        P(D F,c,d);
//        P(D F,e,f);
//        printf("%d" "%d",2,3);
        

//        struct stu{
//            int num;
//            char *name;
//            char sex;
//            float score;
//        } *ps;
//
//        ps = (struct stu *)malloc(sizeof(struct stu));
//        ps->num = 250;
//        ps->name = "Cui yong an";
//        ps->sex = 'M';
//        ps->score = 99.9;
//
//#ifdef NUM
//        printf("num=%d,score=%f\n",ps->num,ps->score);
//#else
//        printf("name=%s,sex=%c\n",ps->name,ps->sex);
//#endif
//        free(ps);
        
        
//        void swap(int *p1,int *p2);
//        int a,b;
//        int *pointer_1,*pointer_2;
//        scanf("%d,%d",&a,&b);
//        pointer_1=&a;pointer_2=&b;
//        if(a<b) swap(pointer_1,pointer_2);
//        printf("\n%d,%d\n",*pointer_1,*pointer_2);
        
//        int i;
//        printf("plase input i:\n");
//        scanf("%d",&i);
//        printf("%d",(i-1)/2);
        
        
//        printf("路径:%s\n",argv[0]);
//        printf("第一个参数:%s\n",argv[1]);
//        printf("第二个参数:%s\n",argv[2]);
        
//        enum weekday{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
//        a=sun;
//        b=mon;
//        c=tue;
//        printf("%d,%d,%d",a,b,c);

//        FILE *fp;
//        char ch;
//        if ((fp = fopen("\/Users\/yanyanjiang\/Desktop\/fgetc.text", "rt"))== NULL) {
//            printf("\nCannot open file strike any key exit!");
//            exit(1);
//        }
//
//        ch = fgetc(fp);
//        while (ch!=EOF) {
//            putchar(ch);
//            ch=fgetc(fp);
//        }
//        fclose(fp);

        
        struct stu boya[2], boyb[2], *pp,*qq;
        FILE *fp;
        int i;
        pp = boya;
        qq = boyb;
        if ((fp=fopen("/Users/yanyanjiang/Desktop/fgetc.text", "wb+")) == NULL){
            printf("Cannot open file strike any key exit!");
            exit(1);
        }
        printf("\ninput data\n");
        for (i=0; i<2; i++,pp++){
            scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
        }
        pp = boya;
        fwrite(pp, sizeof(struct stu), 2, fp);
        rewind(fp);
        fread(qq, sizeof(struct stu), 2, fp);
        printf("\n\nname\tnumber  age  addr\n");
        for (i=0; i<2; i++,qq++) {
            printf("%s\t%5d%7d %s\n",qq->name,qq->age,qq->num,qq->addr);
        }
        fclose(fp);
    }
    return 0;
}

#pragma mark -addTarget

void nzp(int v){
    if (v>0) {
        printf("%d",v);
    }else{
        printf("%d",0);
    }
}


void initalaa(int a[5]){
    printf("\nvalues of array a are:\n");
    for (int i=0; i<5; i++) {
        if (a[i]<0) {
            a[i]=0;
            printf("%d\n",a[i]);
        }
    }
}

int fPlus(int a){
     int auto b=0;
     int static c=3;
    b = b+1;
    c = c+1;
    printf("c:%d\n",c);
    return (a+b+c);
}


int fac(int n){
    register int i,f=1;
    for(i=1;i<=n;i++)
        f=f*i;
    return(f);
}

//请注意，不能企图通过改变指针形参的值而使指针实参的值改变。
//void swap(int *p1,int *p2){int *p;
//    p=p1;
//    p1=p2;
//    p2=p;
//}

void swap(int *p1,int *p2)
{int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

